ANSI - C Bounded Model Checker User Manual Edmund Clarke
نویسندگان
چکیده
We describe a tool that formally verifies ANSI-C programs. The tool implements a technique called Bounded Model Checking (BMC). In BMC, the transition relation for a complex state machine and its specification are jointly unwound to obtain a Boolean formula, which is then checked for satisfiability by using a SAT procedure. The tool supports all ANSI-C integer operators and all pointer constructs allowed by the ANSIC standard, including dynamic memory allocation, pointer arithmetic, and pointer type casts. This research was sponsored by the Semiconductor Research Corporation (SRC) under contract no. 99-TJ-684, the National Science Foundation (NSF) under grant no. CCR-9803774, the Office of Naval Research (ONR), the Naval Research Laboratory (NRL) under contract no. N00014-01-1-0796, and by the Defense Advanced Research Projects Agency and the Army Research Office (ARO) under contract no. DAAD19-01-1-0485. The views and conclusions contained in this document are those of the author and should not be interpreted as representing the official policies, either expressed or implied, of SRC, NSF, ONR, NRL, DOD, ARO, or the U.S. government.
منابع مشابه
ANSI-C Bounded Model Checker User Manual
We describe a tool that formally verifies ANSI-C programs. The tool implements a technique called Bounded Model Checking (BMC). In BMC, the transition relation for a complex state machine and its specification are jointly unwound to obtain a Boolean formula, which is then checked for satisfiability by using a SAT procedure. The tool supports all ANSI-C integer operators and all pointer construc...
متن کاملSATABS: SAT-Based Predicate Abstraction for ANSI-C
This paper presents a model checking tool, SatAbs, that implements a predicate abstraction refinement loop. Existing software verification tools such as Slam, Blast, or Magic use decision procedures for abstraction and simulation that are limited to integers. SatAbs overcomes these limitations by using a SAT-solver. This allows the model checker to handle the semantics of the ANSI-C standard ac...
متن کاملA Tool for Checking ANSI-C Programs
W l f h f l ifi i f ANSI C i e present a too or t e orma ver cat on o programs us ng Bounded Model Checking (BMC). The emphasis is on usability: the tool supports almost all ANSI-C language features, including pointer constructs, d i ll ti i d th fl t d d bl d t t ynam c memory a oca on, recurs on, an e oa an ou e a a ypes. From the perspective of the user, the verification is highly automated:...
متن کاملSpecifying and Verifying Systems with Multiple Clocks
Multiple clock domains are a challenge for hardware specification and verification. We present a method for specifying the relations between multiple clocks, and for modeling the possible behaviors. We can then verify a hardware design assuming that the clocks meet these constraints. We implement our ideas in the context of SAT based Bounded Model Checking (BMC), using ANSI–C programs to specif...
متن کاملComparison between CPBPV, ESC/Java, CBMC, Blast, EUREKA and Why for Bounded Program Verification
– ESC/Java (http://kind.ucd.ie/products/opensource/ESCJava2/): Extended Static Checker for Java is a programming tool that attempts to find common run-time errors in JML-annotated Java programs by static analysis of the program code and its formal annotations. – CBMC (http://www.cprover.org/cbmc/): is a Bounded Model Checker for ANSI-C and C++ programs. It allows verifying array bounds (buffer ...
متن کامل